$(document).ready(init_grupoact)



/*funcion que se ejecuta cuando carga de la pagina*/
function init_grupoact(){
    //cargar_grupoact();
    $("#nuevaGrupoActividadBtn").button({
        icons: {
            primary: 'ui-icon-plusthick'
        }
    });

    $("#buscarBtn").button({
        icons: {
            primary: 'ui-icon-search'
        },
        text: false
    });

    $("#clearBtn").button({
        icons: {
            primary: 'ui-icon-arrowthick-1-w'
        },
        text: false
    });
                    
    $("#ayudaBtn").button({
        icons: {
            primary: 'ui-icon-help'
        },
        text: false
    });
   
    $("#id_centro_costo").load("/salus/AdministrarServlet", {
        op:"-4"
    });

    $("#nuevaGrupoActividadBtn").click(function(){
        
        clear_form_elements($("#formGrupoActividad"));
        
        mostrar_campos({
            id:"",
            codigo:"",
            descripcion:"",
            id_centro_costo:"",
            id_mupio:"",
            op:"nuevo"
        });

        formularioGrupoActividad();
    })


    $("#formGrupoActividad").validate({
        rules:{            
            codigo:{
                required:true
            },
            descripcion:{
                required:true
            }
        }
    })

    $("#buscarBtn").click(buscar_grupoact);
    $("#clearBtn").click(limpiarBusqueda);
    
    $("#buscarCod").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_grupoact()
        }
    })
    $("#buscarDes").keypress(function(ev){
        if(ev.keyCode==13){       
            buscar_grupoact()
        }
    })
    
    $("#buscarCod").keyup(function(){
        $("#buscarDes").val("");
    })
    $("#buscarDes").keyup(function(){
        $("#buscarCod").val("");
    })
    
    
    /*AYUDA*/
    $('#ayudaBtn').qtip({
        content: '<b style="color:red">*</b> Para editar un grupo actividad, haga doble click sobre el registro seleccionado<br /><b style="color:red">*</b> Para buscar un registro utilice los campos del pie de cada columna',
        show: 'mouseover',
        hide: 'mouseout',
        style: {
            name: 'cream', 
            border: {
                width: 3,
                radius: 8                                         
            },
            width: 200,
            tip: { // Now an object instead of a string
                corner: 'topRight', // We declare our corner within the object using the corner sub-option
                color: 'orange',
                size: {
                    x: 20, // Be careful that the x and y values refer to coordinates on screen, not height or width.
                    y : 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
                }
            }
        },
        position: {
            corner: {
                target: 'bottomLeft',
                tooltip: 'topRight'
            },
            container: $('div.tooltips')                          
        }
    })
    
}


/*Muestra el dialogo para capturar los datos de la tabla*/
function formularioGrupoActividad(){    
    $("#grupoact-form").dialog({
        height: 450,
        width: 600,
        modal: true,
        title:"Grupo Actividad",
        buttons:{
            "Cancelar":function(){
                $(this).dialog("close")
            },
            "Guardar":
                                
            function(){
                if($("#op").val()=='nuevo'){
                    validarNumero()
                }else{
                    guardar_grupoact()
                }                              
                                
            }
                                
                                
        }
    });
}


/*Guarda los datos de la tabla*/
function guardar_grupoact(){
    
    if ($("#formGrupoActividad").valid()){
        var form = $("#formGrupoActividad");
        var op=$("#op").val()+"_grupoact";

        var formLocal={
            id:$("#id").val(),
            codigo:$("#codigo").val(),
            descripcion:$("#descripcion").val()
        };
        $.ajax({
            type:'POST',
            url:'/salus/AdministrarSetServlet',
            data:form.serialize()+"&op="+op,
            success:function(data) {

                var resp = data.split("_");

                if(resp[0] == "editar" ){                
                    edit_grupoact(formLocal);
                    $("#grupoact-form").dialog("close");
                     window.location.reload();
                }else {                
                    add_grupoact(formLocal);
                    $("#grupoact-form").dialog("close");
                    window.location.reload();
                }
           
        
       
            }
        });
    }
}


/*Actualiza los datos en la grilla, despues de actualizar los datos*/
function edit_grupoact(grupoact){
    $("#grupoact-"+grupoact.id+"-codigo").text(grupoact.codigo)
    $("#grupoact-"+grupoact.id+"-descripcion").text(grupoact.descripcion)
}


/*Crea dinamicamente la grilla, dependiendo de la respuesta de la base de datos in(json)*/
function add_grupoact(grupoact){
    var tbody=$("#tabla-grupoact-body")
    var tr=$("<tr/>").attr("id","grupoact-"+grupoact.id).appendTo(tbody);
    $("<td/>").appendTo(tr).append(grupoact.codigo).attr("id","grupoact-"+grupoact.id+"-codigo");
    $("<td/>").appendTo(tr).append(grupoact.descripcion).attr("id","grupoact-"+grupoact.id+"-descripcion");

    var aBorrar=$("<a/>").text("Borrar").addClass("borrar").attr("href","#").click(function(){
        if (confirm("¿Desea borrar este asignatura?")){
            $.post("set_data.php",{
                op:"borrar_asignatura",
                id:grupoact.id
            },function(data){
                var resp=JSON.parse(data);
                if (resp.estado=="OK"){
                    $("#grupoact-"+grupoact.id).remove();
                }
            }
            )
        }
        return false;
    })

    var aEditar=$("<a/>").text("Editar").addClass("editar").attr("href","#").click(function(){
        $.getJSON("/salus/AdministrarEditServlet", {
            op:"2",
            id:grupoact.id
        }, function(data){            
            data.op="editar";
            mostrar_campos(data);
            formularioGrupoActividad();
        })
        return false;
    })

    $("<td/>").append(aEditar).append(aBorrar).appendTo(tr)

}


function editar(id){
    $.getJSON("/salus/AdministrarEditServlet", {
        op:"2",
        id:id
    }, function(data){            
        data.op="editar";
        mostrar_campos(data);
        formularioGrupoActividad();
    })
}

/*Llena el formulario de edicion con los datos retornados via json*/
function mostrar_campos(grupoact){
    $("#op").val(grupoact.op)
    $("#id").val(grupoact.id)
    $("#codigo").val(grupoact.codigo)
    $("#descripcion").val(grupoact.descripcion)   
    $("#id_centro_costo").val(grupoact.id_centro_costo)
    $("label.error").remove()
}


/*Trae los datos de la base de datos en un objeto json*/
function cargar_grupoact(){
    $.getJSON("/salus/AdministrarServlet", {
        op:"2",
        cod:$("#buscarCod").val(),
        des:$("#buscarDes").val()
    }, function(data){
        $.each(data, function(i,item){
            add_grupoact(item)
        })
        $("#tabla-grupoact").addClass("tablesorter").tablesorter({
            widthFixed: true,
            widgets: ['zebra']
        }).tablesorterPager({
            container: $("#pager")
        })
    })
}


/*gestiona la busqueda de datos en la grilla, por codigo y descripcion*/
function buscar_grupoact(){

    if($("#buscarCod").val()==""&&$("#buscarDes").val()==""){       
        window.location.reload();
    }else{
        $("#tabla-grupoact-body tr").remove();
        $("#tabla-grupoact colgroup").remove();
        $.getJSON("/salus/AdministrarServlet", {
            op:"2",
            cod:$("#buscarCod").val(),
            des:$("#buscarDes").val()
        }, function(data){
        
        
            if(data.length>0){        
                $.each(eval(data), function(i,item){
                    add_grupoact(item)
                })
                $("#tabla-grupoact").addClass("tablesorter").tablesorter({
                    widthFixed: true,
                    widgets: ['zebra']
                }).tablesorterPager({
                    container: $("#pager")
                })
            }else{
                alert('No se encontraron registros')
            }
            
            
            
        })

    }
}


/*clarea los datos del formulario de busqueda*/
function limpiarBusqueda(){
    $("#buscarCod").val("");
    $("#buscarDes").val("");
}


function validarNumero(){
    var numero = $("#codigo").val();
    
    jQuery.ajax({
        type: "POST",
        url: "/salus/ValidarFormularioServlet",
        data: "op=4&num="+numero,
        dataType: 'json',
        success: function(msg){
            
            if(msg.error=='1'){
                $("#error_num").html("<b style='color:orange'>El codigo ya existe</b>");
                $("#codigo").val("")
                $("#codigo").focus();
            }else{
                $("#error_num").html("");
                guardar_grupoact()
            }
        }

    });
}

function clear_form_elements(ele) {

    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'file':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });

}